package com.quanyan.user.service;

import com.quanyan.api.APIResponse;
import com.quanyan.user.model.db.TbUserFollow;
import com.quanyan.user.request.ReqUserFollow;
import com.quanyan.user.response.RespUserFollow;

import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2016/11/16.
 */
public interface UserFollowService {

    /**
     * 关注
     */
    byte follow_state_true = 0 ;

    /**
     * 取消关注
     */
    byte follow_state_false = 1 ;


    /**
     * 关注关系
     * @param uid
     * @param lstFollowId
     * @return
     */
    public List<TbUserFollow> batchUserFollow(Integer uid ,List<Integer> lstFollowId);


    /**
     * key 关注人的uid
     * @return
     */
    public Map<Integer,TbUserFollow> batchUserFollowMap (Integer uid ,List<Integer> lstFollowId);


    /**
     * 是否关注
     * @param uid
     * @param followId
     * @return
     */
    public TbUserFollow getTbUserFollow(Integer uid ,Integer followId) ;


    /**
     * 用户关注
     *
     * @param uid
     * @param followUid
     * @return
     */
    APIResponse followUser(Integer uid, Integer followUid);

    /**
     * 取消用户关注
     *
     * @param uid
     * @param followUid
     * @return
     */
    APIResponse cancelFollowUser(Integer uid, Integer followUid);


    /**
     * 批量查询用户关注关系
     * @param reqUserFollow
     * @return
     */
     APIResponse<List<RespUserFollow>> queryUserFriendService(ReqUserFollow reqUserFollow);


    /**
     * 批量查询时候关注，返回为关注的id
     * @param uid 登录uid
     * @param lstFollowId
     * @return
     */
    public APIResponse<List<Integer>> batchIsUserFollow (Integer uid ,List<Integer> lstFollowId);

    }
